#include "sql_handle.h"
#include "reg_page.h"
#include "ui_reg_page.h"
#include "login.h"
#include <QMessageBox>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlError>
#include <QtSql/QSqlQuery>
#include "sql_handle.h"
#include <QDebug>
#include <QDir>
#include <QCoreApplication>

sql_handle::sql_handle() {
    // 设置插件路径（如果必要）
    QDir pluginsDir(QCoreApplication::applicationDirPath() + "/plugins");
    if (!pluginsDir.exists()) {
        qDebug() << "Plugins directory does not exist:" << pluginsDir.path();
    } else {
        QCoreApplication::addLibraryPath(pluginsDir.absoluteFilePath("sqldrivers"));
    }

    // 初始化数据库连接
    this->db = QSqlDatabase::addDatabase("QSQLITE", "MyConnection"); // 使用唯一连接名称
    this->db.setDatabaseName("example.db");

    if (!this->db.open()) {
        qDebug() << "Failed to connect to database:" << this->db.lastError().text();
    } else {
        qDebug() << "Connected to database successfully.";

        // SQL 查询：检查表格是否存在，如果不存在则创建
        QString createTableQuery = R"(
            CREATE TABLE IF NOT EXISTS SWIFTCHEN (
                id INTEGER PRIMARY KEY AUTOINCREMENT,
                username TEXT NOT NULL,
                password TEXT NOT NULL,
                sales_amount INTEGER DEFAULT 0
            )
        )";

        QSqlQuery query(this->db);
        if (!query.exec(createTableQuery)) {
            qDebug() << "create table fail:" << query.lastError().text();
        } else {
            qDebug() << "create table success";
        }
    }
}

sql_handle::~sql_handle() {
    // 在析构函数中关闭数据库连接
    if (this->db.isOpen()) {
        this->db.close();
        qDebug() << "Database connection closed.";
        // 移除数据库连接（可选，但推荐在不再需要时调用）
        QSqlDatabase::removeDatabase("MyConnection");
    }
}

